home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume13 / vn.jan.88 / part01 next >
Encoding:
Internet Message Format  |  1988-01-30  |  30.4 KB

  1. Subject:  v13i019:  VN newsreader, 1/88 version, Part01/05
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Bob Mcqueer <amdahl!rtech!rtech!bobm@UUNET.UU.NET>
  7. Posting-number: Volume 13, Issue 19
  8. Archive-name: vn.jan.88/part01
  9.  
  10. [   VN is a news reader which uses the same .newsrc file as readnews but
  11.     displays and interacts differently.  It is aimed at allowing you to
  12.     rapidly scan a large number of newsgroups, looking for something you
  13.     want to read.  The major premise is that you will be interested in a
  14.     small number of articles, but will be interested in keeping tabs on a
  15.     large number of newsgroups which may contain something interesting
  16.     from time to time.  It also has the ability to unpackage digests.
  17.     This version also includes a "virtual article" interface to allow
  18.     you to work easily with NNTP, and other specialized services like,
  19.     perhaps, mail.  --r$  ]
  20.  
  21. #! /bin/sh
  22. # This is a shell archive, meaning:
  23. # 1. Remove everything above the #! /bin/sh line.
  24. # 2. Save the resulting text in a file.
  25. # 3. Execute the file with /bin/sh (not csh) to create the files:
  26. #    README
  27. #    vn.man
  28. #    Makefile
  29. export PATH; PATH=/bin:$PATH
  30. echo shar: extracting "'README'" '(3514 characters)'
  31. if test -f 'README'
  32. then
  33.     echo shar: will not over-write existing file "'README'"
  34. else
  35. cat << \SHAR_EOF > 'README'
  36. Installation procedure steps, for standard version:
  37.  
  38. 1) Edit file config.h and config_std.h, which define system dependent
  39. parameters.  I have NOT ifdef'ed this file for likely changes for SYSV or
  40. anything like that.  You probably can use these files untouched only if
  41. you are UCB with news installed in all the standard places.  Even then,
  42. you may not like some of the defaults.
  43.  
  44. 2) Edit the makefile, which has lots of comments describing how to set things
  45. for various systems.  In order to remind you of this step, a "make" using
  46. the unedited makefile will simply say "PLEASE READ THE MAKEFILE".
  47.  
  48. 3) make vn
  49.  
  50. 4) put the executable where you want it.  put the man page, vn.man
  51. where you want it.  roff it with -man to print it out.  If you made
  52. some configuration changes, or you are a SYSV installation, you may
  53. want to modify the manual a bit.  It is written to reflect the actions in
  54. the config.h as distributed, and as used on UCB (it refers to job control).
  55. It also reflects the standard server interface.
  56.  
  57. Notes:
  58.  
  59. 1)
  60.     If you modify the default printer or editor, this is
  61.     their invocation, ufile being a tempfile name.
  62.  
  63.     "printer files 2>/dev/null"
  64.     "editor ufile"
  65.  
  66. 2)
  67.  
  68.     You may also be interested in the header file "tune.h" which contains
  69.     some sizing / performance affecting parameters.
  70.  
  71. SERVER INTERFACE:
  72.  
  73. vn has a separable module which obtains actual news article information,
  74. and reading / updating user information.  In the "standard" version, this
  75. module looks at the "active" file, persuses articles in the spool directories,
  76. and uses the user's .newsrc file.  Through provision of a different set of
  77. server interface routines, vn may be used with other news storage /
  78. transmission mechanisms.  The interface is described in the file server.doc.
  79.  
  80. That module also controls the handling of followup posting & mail replies.
  81.  
  82. RESOURCE USE:
  83.  
  84. vn should look like people sitting in an editor once it is done with its
  85. reading phase.  During the reading phase, the standard version is beating
  86. mercilessly on the spooling directory, reading file after file.  Another
  87. server interface could be provided, which would depend on having a daemon
  88. do this work periodically, building a master file of title information for
  89. vn to access.  Its reading phase would then be a "pause" rather than a
  90. "phase", with the penalty that you couldn't read anything until the daemon
  91. had gotten around to it.
  92.  
  93. vn maintains a large temporary file containing the users page screens.
  94. Again, it should look a lot like the user is using an editor which has
  95. a temp file out there for its edit buffer.  MAX_C in "tune.h" can be
  96. used to help control the size.
  97.  
  98. Memory allocation: outside the server interface, vn will allocate a buffer
  99. for the current screen image, on the order of MAX_C times the number of
  100. lines on the users terminal.  It will also allocate a NODE structure for
  101. each group, an array of pointers to same, and copies of the newsgroup name
  102. strings.  This is all permanent storage for the entire session, hence never
  103. freed.  There is also allocation of miscellaneous strings and regular
  104. expressions here and there, probably not significant.  The regular
  105. expressions are freed after use.  The "standard" server interface will
  106. allocate an array of character string pointers to newsgroup names, and
  107. possibly some regular expressions for option processing.  It will free
  108. these after reading the .newsrc.  It will also create and free string
  109. storage as articles are accessed, to hold information extracted from
  110. header lines.
  111. SHAR_EOF
  112. fi # end of overwriting check
  113. echo shar: extracting "'vn.man'" '(22744 characters)'
  114. if test -f 'vn.man'
  115. then
  116.     echo shar: will not over-write existing file "'vn.man'"
  117. else
  118. cat << \SHAR_EOF > 'vn.man'
  119. .TH VN 1 2/1/85
  120. .UC
  121. .SH NAME
  122. vn - visual news reader
  123. .SH SYNOPSIS
  124. .I vn
  125. .SH DESCRIPTION
  126. .I Vn
  127. is a news reader which uses the same 
  128. .B .newsrc
  129. file as
  130. .I readnews
  131. (1), but displays and interacts differently.  It is aimed at allowing
  132. you to rapidly scan a large number of newsgroups, looking for something
  133. you want to read.  The major premise is that you will be interested in a
  134. small number of articles, but will be interested in keeping tabs on a large
  135. number of newsgroups which may contain something interesting from time to time.
  136. It also has the ability to unpackage digests.
  137. .sp
  138. .I Vn
  139. supports the -n, -x and -t options of
  140. .I readnews
  141. (newsgroup, read all articles, and title).  In addition, there
  142. is a -w (writer) option which works like -t, but is a search string to
  143. apply to the "From" header line rather than the subject.  In the -n, -t
  144. and -w options, a leading ! on the string is taken to mean negation.
  145. The rest of the string is a regular expression for the -w and -t options.
  146. .sp
  147. For example:
  148. .sp
  149. -n net.dogs -w !fred -t [Bb]eagle
  150. .sp
  151. For articles in net.dogs about beagles written by somebody other
  152. than fred.  Multiple -w -t options are treated as follows:
  153. .in +5
  154. .sp
  155. If the article satisfies any of the negations, you won't see it,
  156. regardless of the non-negated options.
  157. .sp
  158. Multiple -w options are logically "or'ed", as are multiple -t's.
  159. .sp
  160. If both -w and -t are present, the article is seen only if it satisfies
  161. at least one of the -w's and at least one of the -t's, ie. the results of the
  162. logical "or's" of the -t's and -w's are logically "anded".
  163. .sp
  164. .in -5
  165. The -n options allow the "all" convention, replacing ".all" by
  166. ".*" before using the regular expression calls.  -n options are processed
  167. in order given, so that subsequent more specific -n's may partially
  168. undo the effect of previous "alls".  Note that the -n option
  169. treatment is slightly different than the
  170. .I readnews
  171. treatment which says that "foo" implies "foo.all".
  172. .I Vn
  173. accepts this incompatibility to allow you an easier way of saying JUST "foo"
  174. without any of its subgroups.
  175. .sp
  176. Options may be given on the command line, in which case they will
  177. supersede those given in the
  178. .B .newsrc
  179. file.  For command line -n options, the "!" unsubscriptions in
  180. .B .newsrc
  181. are also ignored.  This allows you to override all subscription information
  182. by command line specification.  If you use an -S option on the command line,
  183. the "!" unsubscriptions will still be used.  -S is meaningless in the
  184. .B .newsrc
  185. file.
  186. .sp
  187. There are two more options specific to
  188. .I vn:
  189. the -%, -U.  The -% option initially gives you the results of a "%"
  190. command, rather than the page for the first newsgroup (see below).
  191. This allows you to see what newsgroups are available before viewing any.
  192. The -U option says that when your
  193. .B .newsrc
  194. file is updated via answering "yes" to the update query on
  195. exit or using control-W, newsgroups marked with "!" are to be updated too.
  196. Normally, these groups are left alone, ie. updated only to the number that
  197. was already in your
  198. .B .newsrc,
  199. or the lowest article number still around.
  200. You may get flooded should you decide to resubscribe.
  201. If you don't like this treatment, use -U.  Then, control-W and "yes" to
  202. the update on exit will update your unsubscribed newsgroups to the most
  203. recent article.
  204. .sp
  205. When
  206. .I vn
  207. is invoked,
  208. there will be a pause (with an explanatory "reading" message and
  209. a series of newsgroups) while vn reads the news.  The newsgroups listed
  210. are ones articles are actually being found in.
  211. The length of the pause depends
  212. on how much news there is.  If there is a lot,
  213. it may take a long time to get through the reading phase.
  214. .sp
  215. Once the reading phase is over, interaction is rapid.
  216. If
  217. .I vn
  218. is backgrounded, it suppresses the "reading" output, so
  219. that it will not halt on tty output until it is ready to begin showing
  220. articles.
  221. .sp
  222. .I Vn
  223. may show you a list of newsgroups which were not mentioned in the
  224. .B .newsrc
  225. file.  Records for these newsgroups will be added, whether
  226. they were scanned for articles or not.  The first time
  227. .I vn
  228. is used, the list may be quite long and scroll off the screen.
  229. Thereafter, there should only be a list when new newsgroups are
  230. created.  This display serves to let you know of their existence,
  231. or of something happening to your
  232. .B .newsrc
  233. file.
  234. .sp
  235. The basic display is a "page" which shows a newsgroup and a list of
  236. titles, number of
  237. lines, and authors for new articles.
  238. Articles which have been updated in the
  239. .B .newsrc
  240. file  are flagged with an underscore preceding the article number.
  241. You also have the ability to "mark" articles for the duration of a session,
  242. shown with an asterisk (col. 1 and 2 are reserved for asterisk and
  243. underscore respectively - 
  244. in normal usage they will be blank, so that the casual user will probably
  245. be unaware of their use until marking and updating are invoked)
  246. .sp
  247. There is a help menu to go with this page.
  248. You may read articles, save them, send them to the printer, either by cursor
  249. position, the whole page, or in specified sets.  Sets are specified either
  250. as a set of article numbers, a regular expression to match the subject /
  251. author / number of lines data on, or an asterisk to indicate the choice
  252. of a set of previously marked articles.  Any of these methods also
  253. accept a leading "!" to indicate negation.
  254. .sp
  255. By default, when you read articles only a couple of the dozen or so
  256. header lines are
  257. shown.  There is an option to allow you to see all the
  258. header lines when you read articles.  The command controlling this toggles
  259. between the two states.
  260. .sp
  261. A similar toggle is used to support ROT13.
  262. .sp
  263. .I Vn
  264. is capable of manipulating digests.  The "d" command unpacks a digest,
  265. and presents you with a page showing the unpacked articles, which can
  266. be accessed as for articles on normal newsgroup pages.
  267. When you leave the digest page(s), you reenter the normal flow of newsgroups.
  268. Digests can also be read as normal articles, of course.
  269. .sp
  270. Order of pages is determined by
  271. order of groups in
  272. .B .newsrc.
  273. Newsgroups which are not
  274. mentioned in
  275. .B .newsrc
  276. will be added, as mentioned previously, and tacked onto the end.
  277. Lines corresponding to non-existent newsgroups will be deleted.
  278. You will probably want to run
  279. .I vn
  280. once, then edit
  281. .B .newsrc
  282. to the desired order of presentation.
  283. .sp
  284. Updating the data for
  285. .B .newsrc
  286. is under user control.  If you do
  287. no "W", "w", "^w", o or O commands, no updating takes place, and you'll see the
  288. articles again the next time you read news.
  289. If you quit without updating, you will be prompted to make sure you
  290. don't want to do so.  The word "yes" will actually be pretyped for you
  291. on the prompt.  You may erase it and enter "no" to avoid the update.
  292. Earlier versions simply prompted with no pre-typed answer, and
  293. there were requests "yes" the default answer rather than "no".  This
  294. honors that request, while underscoring what is going on.  This treatment
  295. is site-configurable, actually.
  296. .sp
  297. Note that "updating what you've seen" to
  298. .I vn
  299. means that you've seen the page presentation, not that you've read the
  300. article.  This is consistent with the overall assumption that you don't
  301. want to read most of what you are presented with.
  302. .sp
  303. Breaks result in a "really quit?" query, so you can recover from noisy
  304. lines and prompts for commands you didn't really mean.  If you answer no,
  305. you are simply jumped back to the page.  Breaks while in the midst of scrolling
  306. out an article you are reading jump you to the end of the article to stop
  307. the output.
  308. .sp
  309. Commands are single character (no return key required), except that
  310. they may be preceded with numeric characters, which may have
  311. some effect on their actions.  Commands which require further input
  312. cause prompts for the information, this input being
  313. terminated by return.  For prompted input, the erase and kill keys
  314. work.
  315. .sp
  316. .ce 1
  317. Command Menu For Page:
  318. .sp
  319. .nf
  320. [...] = effect of optional number preceding command
  321. pipes are specified by filenames beginning with |
  322. articles specified as a list of numbers, title search string, or
  323.     * to specify marked articles.  ! may be used to negate any
  324.  
  325.      q - quit
  326.      k - (or up arrow) move up [number of lines]
  327.      j - (or down arrow) move down [number of lines]
  328.  <back sp> - (or left arrow) previous page [number of pages]
  329.   <return> - (or right arrow) next page [number of pages]
  330.      d - unpack digest
  331.      H - top of page
  332.      L - bottom of page
  333.      G - bottom of page (alternate L)
  334.      M - middle of page
  335.      d - unpack digest
  336.      r - read article [number of articles]
  337.    <space> - read article (alternate 'r')
  338.      R - read all articles on page
  339.  control-r - specify articles to read
  340.      s - save or pipe article [number of articles]
  341.      S - save or pipe all articles on page
  342.  control-s - specify articles to save
  343.  control-t - specify articles to save (alternate ctl-s)
  344.      p - print article [number of articles]
  345.      P - print all article on page
  346.  control-p - specify articles to print
  347.      w - update .newsrc status to cursor
  348.      W - update .newsrc status for whole newsgroup
  349.  control-w - update .newsrc status for all pages displayed
  350.      o - recover original .newsrc status for newsgroup
  351.      O - recover all original .newsrc status
  352.      # - display count of groups and pages - shown and total
  353.      % - list newsgroups with new article, updated counts
  354.      n - specify newsgroup to display and/or resubscribe to
  355.      u - unsubscribe from group
  356.      x - mark/unmark article [number of articles]
  357.      * - mark/unmark article [number of articles]
  358.      X - erase marks on articles
  359.      h - toggle flag for display of headers when reading
  360.      z - toggle rotation for reading
  361. <formfeed> - redraw screen
  362.      ! - escape to UNIX to execute a command
  363.      " - show vn version
  364.      ? - show this help menu
  365. .fi
  366. .sp
  367. When you read articles, there is another help menu, for advancing through
  368. the articles, replying, posting followups, and saving the
  369. articles.  Breaks may be used to
  370. stop the output of an article if you decide that you didn't really
  371. want to read it.  You can jump from the reading portion back to either
  372. page you came from or the NEXT page.
  373. .sp
  374. You can cause the article reading interface to repaint the screen rather
  375. than scroll, if that is more efficient for your display.  See description
  376. of the MORE variable, below.
  377. .sp
  378. For replying and posting followups, you will be thrown into an editor
  379. to create the reply or article.
  380. The article will be included in the file you are editing, marked with
  381. "> "'s for excerpting in your reply or followup.  After you exit the
  382. editor, you are prompted to make sure you still want to post or reply,
  383. so you can abort.
  384. .sp
  385. For followups, your article is appended to "author_copy" for future
  386. reference.
  387. .sp
  388. Header lines for the mailer / news poster are present in the file
  389. you are editing to allow you to modify them.  Remember to leave a blank
  390. line between the header lines and your text.  It may be OK if you
  391. don't, but why tempt fate.
  392. .sp
  393. The editor is determined by your EDITOR or VNEDITOR variable, as for
  394. .I postnews.  (see section on ENVIRONMENT VARIABLES).
  395. If EDITOR is not set, you get
  396. .I vi,
  397. or the default determined at your site.
  398. .sp
  399. .ce 1
  400. Reading menu:
  401. .sp
  402. .nf
  403.          n - next article, if any
  404.          q - quit reading articles, if any more to read
  405.          Q - quit reading, and turn to next page of articles
  406.          r - rewind article to beginning
  407.   <return> - next line
  408.          / - search for a pattern in the article
  409.          m - send mail to author of article
  410.          f - post followup to article
  411.          s - save article in a file
  412.          p - send article to the printer
  413.          ? - see this help menu
  414.      z - toggle rotation flag
  415.      h - toggle header suppression flag
  416.  
  417.  anything else to continue normal reading
  418. .fi
  419. .sp
  420. When articles are saved from anywhere, a few special conventions apply.
  421. .sp
  422. If the name begins with "|", you are specifying
  423. a pipe to feed the article(s) to, rather than a file.  No other interpretation
  424. is done in this case.
  425. .sp
  426. If you specify a name not beginning with "/", the article will be saved
  427. with reference to your original directory, or with reference to the VNSAVE
  428. variable (see below).
  429. .sp
  430. If you embed a "%d" in the name, that
  431. will be replaced with the article number, or the first number in a list
  432. of articles.
  433. .sp
  434. If you prepend "w:" to the
  435. name, you can force an overwrite instead of an append.  The colon prefix
  436. may be used to open the file with any mode you please, actually.  If you
  437. really WANT a colon in the name, specify "a:" ahead of it.  The colon
  438. prefix is stripped off before any other filename interpretation.
  439. .sp
  440. Both the VNSAVE variable and the save name may use a leading "~" to
  441. indicate the user's home or "~name" for another user's home.  It is assumed
  442. that a slash will separate the tilde expression from the rest of VNSAVE, or
  443. the rest of the file name if there are further directories.
  444. .sp
  445. When you are prompted for a savefile name, the last none-pipe one you used
  446. is presented, so you may use your erase/kill keys to edit it.
  447. .sp
  448. Old search strings / pattern match strings are also presented for edit in the
  449. same manner.
  450. .sp
  451. If you don't like the choice of command keys, you
  452. may change them (default choices - basic control in article
  453. reader is ala "more" of course, the "j" and "k" on the page presentation
  454. are "vi" convention, other page commands are somewhat "readnews" compatible).
  455. If you have a file named
  456. .B .vnkey
  457. in your home directory this file will be read in order to obtain keystroke
  458. translation.  The format is simple:
  459. .sp
  460. Each line begins with R or P indicating translation for the reader interaction,
  461. or the page interaction (r and p accepted also).  Following the R or P is
  462. a character, followed by an "=", followed by another character.  The character
  463. on the left hand side of the equals sign is what you wish to input, and the
  464. character on the right hand side of the equals sign is what you wish to
  465. translate it to.  No embedded spaces.
  466. Lines not beginning with the proper characters are simply
  467. ignored, as are characters following the translated character.  Eg:
  468. .sp
  469. .in +5
  470. Pd=j
  471. .br
  472. Pu=k
  473. .in -5
  474. .sp
  475. uses "u" and "d" instead of "j" and "k" on the page layout (presumably,
  476. you are also going to translate something else to "u" and "d" for the
  477. unsubscribe and digest commands).  If you translate keys, it is up to you
  478. to see that all commands can still be reached, and that former command keys
  479. which are no longer used are mapped to something meaningless.  In particular,
  480. you are going to have difficulties if you make it impossible to input "q".  The
  481. help menus will show the "new" keys, and bad mappings should show up as
  482. multiple definitions for the same key, or alternate mappings not showing
  483. up on the help menu.
  484. .sp
  485. Mapping the "=" key via "==" works.  Any keys not mentioned in the file
  486. are translated to themselves.
  487. .sp
  488. Control keys are given as DECIMAL numbers with no backslashes or anything.
  489. The decimal number is the ASCII code for the character, eg:
  490. .sp
  491. .in +5
  492. P24=12
  493. .br
  494. P12=?
  495. .in -5
  496. uses "control-x" for the "control-l (formfeed)" refresh key, and maps the
  497. control-l to a "?".  BTW, mapping all undefined keys to "?" will mean that you
  498. automatically get the help display for any illegal key, should you wish for
  499. such a thing.  The LAST one mapped will determine what key is given in
  500. the "? for help" lines, and the help display itself.
  501. Remembering that control-A through
  502. control-Z are ASCII codes 1 through 26 and delete = 127 may keep you from
  503. having to consult an ASCII table.  Remember also that some controls, such
  504. as control- C, Z, S or Q may be caught by the operating system for signal
  505. generation or terminal control, and are thus unavailable.
  506. .sp
  507. Because of arrow keys and the ability to prefix commands with counts,
  508. numeric characters and the escape key may not be used for page commands.
  509. Attempts to use them will simply do nothing.
  510. .sp
  511. Control keys are not available for the reader, except for newline,
  512. backspace, and tab.  The reason controls are filtered here has to do
  513. with nasty problems involving terminal mode switches on some systems,
  514. specifically a UTS frontend early versions were being used on.
  515. .sp
  516. In either interaction, "return" and "linefeed" are mapped to the "newline"
  517. character at a level below the translation.  If you don't know the
  518. ASCII for the "newline" char, it is recommended that you map both
  519. ASCII 10 and 13 if you wish to map "return" to something.
  520. .SH FILES
  521. .TP 24
  522. /usr/tmp/*
  523. One temporary file created by
  524. .I tmpnam
  525. (3), and immediately unlinked,
  526. remains open in update mode for duration of session.
  527. Disk space freed by system close of file descriptor at exit.
  528. Can be large, as this file contains the "page" displays.
  529. Temporary files also created by
  530. .I tmpnam
  531. (3) for mailing replies, posting followups and creating digest "articles".
  532. .TP 24
  533. (login directory)/.newsrc
  534. news status file.  Updated following session.  See NEWSRC environment variable.
  535. .TP 24
  536. (login directory)/author_copy
  537. A copy of all articles posted using the followup command will be appended
  538. to this file in /bin/mail format.  See CCFILE environment variable.
  539. .TP 24
  540. (login directory)/.vnkey
  541. Keystroke mapping file for changing command characters.
  542. .TP 24
  543. (login directory)/*.vnXXXXXX
  544. One temporary file created by
  545. .I tmpnam
  546. (3) while updating the .newsrc file.  If the update fails, you are informed,
  547. and this file
  548. may be used to recover the last update.  Unlinked following successful update.
  549. .TP 24
  550. (spool directory)/*
  551. spooling directories containing articles.
  552. .TP 24
  553. /usr/lib/news/active
  554. active newsgroup list.
  555. .SH "ENVIRONMENT VARIABLES"
  556. For all variables which do not begin with "VN", vn will accept an override
  557. by setting a variable VN<name> which will be preferred.  For instance
  558. setting VNEDITOR allows you to use a special editor for vn without affecting
  559. use of that variable by your shell, setting VNPS1 takes care of your
  560. normal UNIX prompt having multiple lines, or setting VNNEWSRC allows you to
  561. use vn without disturbing your .newsrc for other readers.
  562. .TP 24
  563. VNSAVE
  564. used as a directory to place saved articles in.  If it does not begin
  565. with "/", it will be taken with respect to the users home directory.  If
  566. it ends with "/%s", a separate directory will be created for each
  567. newsgroup.
  568. .TP 24
  569. PS1
  570. used to present prompt string for command on unix escape.
  571. defaults to "$ "
  572. .TP 24
  573. EDITOR
  574. editor used for mailing replies and posting followups.
  575. defaults to "ed".
  576. .TP 24
  577. POSTER
  578. posting program for followups.  defaults to "inews -h".
  579. .TP 24
  580. MAILER
  581. used when mailing replies.  defaults to "sendmail -t".
  582. .TP 24
  583. PRINTER
  584. program used with the print commands for sending articles to
  585. the printer.  defaults to "lpr".
  586. .TP 24
  587. NEWSRC
  588. if set, can be used to override the choice of ".newsrc" as the
  589. name for the status file.  Name will still be used relative to
  590. the login directory, unless it begins with "/".
  591. .TP 24
  592. MORE
  593. if set to "-c", will cause the article reading display to clear and
  594. repaint, rather than relying on scrolling.  For some environments,
  595. notably Sun, this is faster.  This also causes some minor display
  596. modifications which you may prefer.
  597. .TP 24
  598. CCFILE
  599. if set, overrides the choice of "author_copy" as the name of the
  600. file to CC all articles posted with the followup command.  Name
  601. will still be used relative to the login directory, unless it begins
  602. with "/".
  603. .TP 24
  604. VNKEY
  605. if set, overrides the choice of ".vnkey" as the name of the
  606. file to map keys from.  Name
  607. will still be used relative to the login directory, unless it begins
  608. with "/".
  609. .SH DIAGNOSTICS
  610. user error messages.  self explanatory.
  611. .SH AUTHOR
  612. R. L. McQueer
  613. .SH BUGS
  614. Note that
  615. .I readnews
  616. will rearrange the order of
  617. .B .newsrc.
  618. If you
  619. interleave use of it with
  620. .I vn,
  621. order selection gets hosed.
  622. .sp
  623. If you've really taken advantage of the ability of readnews to skip
  624. articles in the middle of the spooling numbers, be warned that
  625. .I vn
  626. doesn't have it, and will
  627. assume you've read the articles in the middle.
  628. .sp
  629. If the
  630. .B .newsrc
  631. file indicates that you've read articles in a newsgroup with a higher
  632. number than the current spooling number for that newsgroup,
  633. .I vn
  634. will show you up to 60 old articles.  This is intended for recovery in
  635. cases where article spooling has been reset, or to avoid missing articles
  636. because you just changed machines and didn't bother to edit your
  637. .B .newsrc
  638. file.  Rather than miss stuff, you'll see some old stuff again.  During
  639. the reading phase, a warning message is printed that this is happening.
  640. .sp
  641. Sometimes a "break" during reading an article will not only halt the
  642. article but suppress the prompt.  A command character will work anyway.
  643. .sp
  644. If a prompt to be displayed on the dialogue line
  645. contains non-printing sequences, stuff on the
  646. line may not get erased when you are prompted, because
  647. .I vn
  648. thinks the string is long enough to overprint its current contents.
  649. This usually comes up when you have escape sequences in your UNIX
  650. prompt, and do a "!" command.
  651. The "overprint" check is made to save a clear-line sequence (kludged in
  652. by overprinting to the end with blanks if the terminal doesn't
  653. have one - annoying at 1200 baud).
  654. .sp
  655. Output during the reading phase which was suppressed by backgrounding
  656. .I vn
  657. does not get started by foregrounding it again without doing a
  658. control-z and a second foreground (it doesn't figure out its background /
  659. foreground status on each output - only on startup and while handling
  660. the SIGTSTP signal).  Actually, this results in a method for having
  661. .I vn
  662. do its reading phase silently in the foreground without redirecting
  663. output, should such a thing be desired.
  664. .sp
  665. Very many -w or -t options cause SLOW reading phases.  It is recommended
  666. that these be used only when reading a few specific groups.
  667. .sp
  668. Digest extraction will split a single article into several if it contains
  669. embedded ---- lines, the normal separator between articles in digests.
  670. They will all have identical titles.
  671. Digest extraction may not work with human built digests which don't
  672. use the expected syntax for joining articles.  mod.computers.ibm-pc
  673. and mod.computers.mac were used as models for the feature.
  674. .sp
  675. The data given by the % command represents the difference between the
  676. last article number you've updated to in a newsgroup and the high
  677. article number.  This may be significantly greater than the number of
  678. actual articles for a newsgroup you haven't been reading, and for
  679. newsgroups that have had a lot of articles filtered out of them using
  680. the -w and -t options.  The numbers given for menu selection in the
  681.  % command are the order numbers from the .newsrc, and have gaps for
  682. unsubscribed newsgroups.
  683. .sp
  684. The key mapping capability doesn't handle function keys.  Because of the
  685. use of controls as commands, terminals whose arrow keys echo something
  686. other than a sequence beginning with escape can't use arrow keys.  For
  687. these terminals, a warning message is printed during the reading phase.
  688. SHAR_EOF
  689. fi # end of overwriting check
  690. echo shar: extracting "'Makefile'" '(2963 characters)'
  691. if test -f 'Makefile'
  692. then
  693.     echo shar: will not over-write existing file "'Makefile'"
  694. else
  695. cat << \SHAR_EOF > 'Makefile'
  696. # CFLAGS:
  697. #    set -DJOBCONTROL if you have job control (BSD).
  698. #    set -DSYSV -Dindex=strchr -Drindex=strrchr on Sytem V systems
  699. #    set -Dregfree=free if you DON'T include reg.o (SYSV + some BSD)
  700. #
  701. # JOBCONTROL could be done as #ifndef SYSV, I suppose, but this clearly
  702. # marks that particular difference.
  703. #
  704. # LIBS:
  705. # should point to any extra libraries needed, such as termcap.  You
  706. # may want to change this to use the curses termcap cover.  If you need
  707. # to pull in another library to get regex / regcmp or strtok on non-SYSV
  708. # systems, you may want to put that here
  709. #
  710. # EXTRAOBJS:
  711. # may be used to include tmpnam.o, strtok.o, reg.o in the list.
  712. #
  713. # These objects implement SYSV utilities for BSD machines.
  714. #
  715. # strtok.o implements strtok() / strpbrk().  reg.o implements regex()/regcmp()
  716. # on top of the BSD regular expression library (regex() allows multiple
  717. # regular expressions).  tmpnam.o implements tmpnam() of course.
  718. #
  719. # If you have them, use your own regex/regcmp, because:
  720. #
  721. #    i) They should be faster than the reg.c code, which
  722. #    recompiles the "current" ucb string every time you
  723. #    switch regular expressions.
  724. #
  725. #    ii) I briefly checked out reg.c once, and it seemed to
  726. #    work.  Our system has the "real" calls available, so I
  727. #    run with those.  reg.c hasn't been used much by me, although
  728. #    I've had nobody tell me it doesn't work.
  729. #
  730. # if you DON'T include reg.o, be sure you set -Dregfree=free in CFLAGS.
  731. #
  732. # As with regex, if you have a system strtok(), it is likely more efficient -
  733. # string routines will often be done in assembler on a given machine.
  734. #
  735. # Even if you have it, you can use tmpnam.o anyhow.  This version will tailor
  736. # the temp file name to vnXXXXXX, instead of a generic tmpXXXXXX.
  737. #
  738. # "vanilla" BSD:
  739. #LIBS = -ltermcap
  740. #EXTRAOBJS = tmpnam.o strtok.o reg.o
  741. #CFLAGS = -O -DJOBCONTROL
  742. #
  743. # "vanilla" SYSV:
  744. #LIBS = -ltermcap
  745. #EXTRAOBJS = tmpnam.o
  746. #CFLAGS = -O -DSYSV -Dregfree=free -Dindex=strchr -Drindex=strrchr
  747. #
  748. # BSD with strtok() / regex(), such as ULTRIX.  These are the rules
  749. # used for our installation (rtech is a microvax running ULTRIX):
  750. #LIBS = -ltermcap
  751. #EXTRAOBJS = tmpnam.o
  752. #CFLAGS = -O -DJOBCONTROL -Dregfree=free
  753.  
  754. # SERVEROBJS defines the object(s) for the vns_xxxx "server" interface.
  755. #
  756. #    std.o is the version for "standard" news, making use of the
  757. #    users .newsrc file, and  resident articles / active file.
  758. #
  759. SERVEROBJS = std.o
  760.  
  761. # normal vn objects
  762. #
  763. VNOBJS=    hash.o envir_set.o pagefile.o reader.o storage.o sig_set.o term_set.o tty_set.o userlist.o vn.o vnglob.o digest.o strings.o session.o printex.o getch.o help.o newdisp.o stat.o svart.o
  764.  
  765. # This is to force you to read the makefile.  Once you have, comment this rule,
  766. # and uncomment the "real" rule.  At the minimum, you will also have to
  767. # uncomment one of the three sets of LIBS / EXTRAOBJS & CFLAGS definitions
  768. # above.
  769. #
  770. vn:
  771.     @echo "PLEASE READ THE MAKEFILE"
  772. #vn:    $(VNOBJS) $(EXTRAOBJS) $(SERVEROBJS)
  773. #    cc -o vn $(VNOBJS) $(EXTRAOBJS) $(SERVEROBJS) $(LIBS)
  774. SHAR_EOF
  775. fi # end of overwriting check
  776. #    End of shell archive
  777. exit 0
  778.